GtkToolitemGroup: Use monotonic clock for animation timeout
authorMatthias Clasen <mclasen@redhat.com>
Mon, 1 Nov 2010 15:15:30 +0000 (11:15 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 1 Nov 2010 15:43:15 +0000 (11:43 -0400)
gtk/gtktoolitemgroup.c

index 9f238c6cb090d2a5a22d306d768d793f8dbfbb35..a1f4b052d236c8ab1483b5c421fc7b664108a4b3 100644 (file)
@@ -1798,10 +1798,10 @@ gtk_tool_item_group_set_header_relief (GtkToolItemGroup *group,
 static gint64
 gtk_tool_item_group_get_animation_timestamp (GtkToolItemGroup *group)
 {
-  GTimeVal now;
+  GTimeSpec now;
 
-  g_source_get_current_time (group->priv->animation_timeout, &now);
-  return (now.tv_sec * G_USEC_PER_SEC + now.tv_usec - group->priv->animation_start) / 1000;
+  g_source_get_time (group->priv->animation_timeout, &now);
+  return (now.tv_sec * G_USEC_PER_SEC + now.tv_nsec / 1000 - group->priv->animation_start) / 1000;
 }
 
 static void
@@ -1924,14 +1924,14 @@ gtk_tool_item_group_set_collapsed (GtkToolItemGroup *group,
     {
       if (priv->animation)
         {
-          GTimeVal now;
+          GTimeSpec now;
 
-          g_get_current_time (&now);
+          g_get_monotonic_time (&now);
 
           if (priv->animation_timeout)
             g_source_destroy (priv->animation_timeout);
 
-          priv->animation_start = (now.tv_sec * G_USEC_PER_SEC + now.tv_usec);
+          priv->animation_start = (now.tv_sec * G_USEC_PER_SEC + now.tv_nsec / 1000);
           priv->animation_timeout = g_timeout_source_new (ANIMATION_TIMEOUT);
 
           g_source_set_callback (priv->animation_timeout,